/*
* PROJECT: Happy New Year
* VERSION: 1.0
* AUTHOR: Mattias Thell
* URL: http://www.mattiasthell.com
*
* */

#pragma once

#include <hgeparticle.h>
#include <hgefont.h>
#include <string>

namespace hny {

	class Settings
	{
	public:
		~Settings();

		static Settings* GetInstance();
		void Destroy();

		void LoadSettings();
		void SaveSettings();

		int SystemScreenWidth;
		int SystemScreenHeight;
		int SystemColorDepth;

		hgeParticleSystemInfo RocketParticleInfo;
		hgeParticleSystemInfo BonusRocketParticleInfo;
		hgeParticleSystemInfo PlayerRocketParticleInfo;
		hgeParticleSystemInfo ExplosionParticleInfo;
		hgeParticleSystemInfo DualRocketParticleInfo;

		int StartingNumberRockets;

		float ExplosionAlphaStart;

		float RocketSpawnDelay;
		float BonusRocketSpawnDelay;
		float DualRocketSpawnDelay;

		float RocketVelocity;
		float BonusRocketVelocity;
		float PlayerRocketVelocity;
		float DualRocketVelocity;

		float StartingTime;
		float TimeWarning1;
		float TimeWarning2;

		unsigned int MultiplierHighlight1;
		unsigned int MultiplierHighlight2;

		unsigned int RocketsRemainingWarning1;
		unsigned int RocketsRemainingWarning2;

		hgeFont* ComboFont;

		int ShowCombosAfterAmount;

		int RocketScore;
		int BonusRocketScore;
		int DualRocketScore;

		float MultiplierAddition;
		float MultiplierDecreasePerSecond;
		float MultiplierRocketFirePenalty;
		float MultiplierPenaltyMin;

		bool ShowSplash;
		float SplashTime;

		std::string ScoreFile;
		std::string SettingsFile;

		float VolumeMusic;
		float VolumeSound;

		hgeColor RocketColorStart;
		hgeColor RocketColorEnd;

		hgeColor PlayerRocketColorStart;
		hgeColor PlayerRocketColorEnd;

		hgeColor BonusRocketColorStart;
		hgeColor BonusRocketColorEnd;

		hgeColor DualRocketColorStart;
		hgeColor DualRocketColorEnd;

	private:
		Settings();
		Settings(const Settings&);
		Settings& operator= (const Settings&);

		static Settings* mInstance;


	};
}